#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R)

# Simple script to watch the battery capacity and
# turn the power LED to different states:
# 0-10% flashing blue and teal
# 11-20% teal
# 21+% blue
# charging purple
# fully charged white

function set_led() {
  case $1 in
    white)
      echo 1 > /sys/class/leds/red\:charging/brightness
      echo 1 > /sys/class/leds/green\:status/brightness
      ;;
    purple)
      echo 1 > /sys/class/leds/red\:charging/brightness
      echo 0 > /sys/class/leds/green\:status/brightness
      ;;
    blue)
      echo 0 > /sys/class/leds/red\:charging/brightness
      echo 0 > /sys/class/leds/green\:status/brightness
      ;;
    teal)
      echo 0 > /sys/class/leds/red\:charging/brightness
      echo 1 > /sys/class/leds/green\:status/brightness
      ;;
  esac
}

while true
do
  CAP=$(cat /sys/class/power_supply/battery/capacity)
  STAT=$(cat /sys/class/power_supply/battery/status)
  if [[ ${STAT} == "Discharging" ]]; then
    if (( ${CAP} <= 10 )); then
      for ctr in $(seq 1 1 5)
      do
        set_led teal
        sleep .5
        set_led blue
        sleep .5
      done
      continue
    elif (( ${CAP} <= 20 )); then
      set_led teal
    else
      set_led blue
    fi
  elif (( ${CAP} <= 95 )); then
    set_led purple
  else
    set_led white
  fi
  sleep 15
done
